iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
自我挑戰組

自我挑戰系列 第 8

#07 ReplicaSet 和 StatefulSet

  • 分享至 

  • xImage
  •  

ReplicaSet

  • ReplicaSet 是 Kubernetes 中最基本的控制器之一,用於確保指定數量的 Pod 副本在叢集中運作。 ReplicaSet 透過定義 Pod 範本來建立和管理 Pod,以便在副本數量變更時自動進行擴充或縮減。 以下是 ReplicaSet 的一些關鍵特性:
    • Pod 副本管理: ReplicaSet 負責建立和維護一定數量的 Pod 副本,確保它們在健康的節點上運作。
    • 標籤選擇器: 使用標籤選擇器,ReplicaSet 可以精確選擇要管理的 Pod 集合。
    • 自動伸縮: ReplicaSet 可以根據定義的副本數量自動伸縮,以適應應用程式的負載變化。
    • 版本控制: 透過更新 Pod 模板,您可以實現應用程式的版本控制和升級。
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: my-replicaset
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-container
          image: nginx:latest

StatefulSet

  • StatefulSet 是用於管理有狀態應用程式的控制器。 與 ReplicaSet 不同,StatefulSet 確保 Pod 具有穩定的網路識別碼和有序的部署/擴展。 這對於需要有狀態應用程式(如資料庫)非常重要。 以下是 StatefulSet 的一些關鍵特性:
    • 穩定的 label: StatefulSet 為每個 Pod 分配一個穩定的網路 label ,通常是基於其名稱。也就是說StatefulSet controller 為每個 pod 產生固定的識別資訊,不因 pod reschedule 後有變動。
    • 有序部署: StatefulSet 可確保 Pod 的有序部署和擴展,這對於依賴其他 Pod 的應用程式非常重要。
    • 有狀態儲存: StatefulSet 可以管理與 Pod 關聯的持久化存儲,確保資料不會在 Pod 重新部署時遺失。
    • 有序終止: StatefulSet 可以依照特定的順序終止 Pod,以確保資料完整性。
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: my-statefulset
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-container
          image: nginx:latest

上一篇
# 06 service yaml
下一篇
#08 service and ingress
系列文
自我挑戰9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言